package fr.babos.test.autoscalenine
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.net.URLLoader;
	import fr.babos.graphic.tools.AutoScaleNine;
	
	/**
	 * ...
	 * @author ZoulouX
	 */
	public class AutoScaleNineTest extends Sprite 
	{
		/**
		 * La classe du bitmap de test
		 */
		[Embed(source='../../../../../lib/graphics/autoScaleNineTest1.png')]
		public static const TestBitmap2			:Class;
		
		/**
		 * Le bitmap de test
		 */
		protected var _testBitmap				:Bitmap 					= new TestBitmap2();
		
		/**
		 * L'autoScaleNine en test
		 */
		protected var _asn						:AutoScaleNine;
		
		/**
		 * Le constructeur de l'app
		 */
		public function AutoScaleNineTest ():void 
		{
			// Attendre l'initialisation de l'app
			if (stage != null)
				init();
			else
				addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * Initialisation
		 */
		protected function init (event:Event = null):void 
		{
			// On écoute plus l'initialisation
			removeEventListener(Event.ADDED_TO_STAGE, init);
			
			// Ecouter les redimentionnements du stage
			stage.addEventListener(Event.RESIZE, stageResizeHandler);
			
			// Alignement du stage
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
				
			// On créé l'autoScaleNine en lui passant le bitmapData de test
			_asn = new AutoScaleNine(_testBitmap.bitmapData);
			_asn.x = 10;
			_asn.y = 10;
			
			// On l'ajoute
			addChild(_asn);
			
			// On force un premier resize pour l'avoir en fullScreen
			stageResizeHandler();
		}
		
		/**
		 * Redimentionnement du stage
		 */
		protected function stageResizeHandler (event:Event = null):void
		{
			// Appliquer les nouvelles dimensions à l'AutoScaleNine
			_asn.width = stage.stageWidth - 20;
			_asn.height = stage.stageHeight - 20;
		}
	}
}